[relabel]
allow-unauthenticated = [
    "A-*",
    "C-*",
    "D-*",
    "E-*",
    "F-*",
    "I-*",
    "NLL-*",
    "O-*",
    "S-*",
    "T-*",
    "WG-*",
    "beta-nominated",
    "const-hack",
    "llvm-main",
    "needs-fcp",
    "relnotes",
    "requires-*",
    "regression-*",
    "perf-*",
    "AsyncAwait-OnDeck",
]

[glacier]

[ping.icebreakers-llvm]
alias = ["llvm", "llvms"]
message = """\
Hey LLVM ICE-breakers! This bug has been identified as a good
"LLVM ICE-breaking candidate". In case it's useful, here are some
[instructions] for tackling these sorts of bugs. Maybe take a look?
Thanks! <3

[instructions]: https://rustc-dev-guide.rust-lang.org/notification-groups/llvm.html
"""
label = "ICEBreaker-LLVM"

[ping.icebreakers-cleanup-crew]
alias = ["cleanup", "cleanups", "cleanup-crew", "shrink", "reduce", "bisect"]
message = """\
Hey Cleanup Crew ICE-breakers! This bug has been identified as a good
"Cleanup ICE-breaking candidate". In case it's useful, here are some
[instructions] for tackling these sorts of bugs. Maybe take a look?
Thanks! <3

[instructions]: https://rustc-dev-guide.rust-lang.org/notification-groups/cleanup-crew.html
"""
label = "ICEBreaker-Cleanup-Crew"

[ping.windows]
message = """\
Hey Windows Group! This bug has been identified as a good "Windows candidate".
In case it's useful, here are some [instructions] for tackling these sorts of
bugs. Maybe take a look?
Thanks! <3

[instructions]: https://rustc-dev-guide.rust-lang.org/notification-groups/windows.html
"""
label = "O-windows"

[ping.arm]
message = """\
Hey ARM Group! This bug has been identified as a good "ARM candidate".
In case it's useful, here are some [instructions] for tackling these sorts of
bugs. Maybe take a look?
Thanks! <3

[instructions]: https://rustc-dev-guide.rust-lang.org/notification-groups/arm.html
"""
label = "O-ARM"

[ping.risc-v]
message = """\
Hey RISC-V Group! This bug has been identified as a good "RISC-V candidate".
In case it's useful, here are some [instructions] for tackling these sorts of
bugs. Maybe take a look?
Thanks! <3

[instructions]: https://rustc-dev-guide.rust-lang.org/notification-groups/risc-v.html
"""
label = "O-riscv"

[ping.fuchsia]
message = """\
Hey friends of Fuchsia! This issue could use some guidance on how this should be
resolved/implemented on Fuchsia. Could one of you weigh in?
"""
label = "O-fuchsia"

[ping.macos]
message = """\
Hey MacOS Group! This issue or PR could use some MacOS-specific guidance. Could one
of you weigh in? Thanks <3
"""
label = "O-macos"

[prioritize]
label = "I-prioritize"

[autolabel."I-prioritize"]
trigger_labels = [
    "regression-untriaged",
    "regression-from-stable-to-stable",
    "regression-from-stable-to-beta",
    "regression-from-stable-to-nightly",
    "I-unsound",
]
exclude_labels = [
    "P-*",
    "T-infra",
    "T-release",
    "requires-nightly",
]

[autolabel."T-rustdoc"]
trigger_files = [
    # Source code
    "src/librustdoc",
    "src/tools/rustdoc",
    "src/rustdoc-json-types",

    # Tests
    "tests/rustdoc",
    "tests/rustdoc-ui",
    "tests/rustdoc-gui",
    "tests/rustdoc-js",
    "tests/rustdoc-js-std",
    "tests/rustdoc-json",

    # Internal tooling
    "src/etc/htmldocck.py",
    "src/tools/jsondocck",
    "src/tools/jsondoclint",
    "src/tools/rustdoc-gui",
    "src/tools/rustdoc-js",
    "src/tools/rustdoc-themes",
]
exclude_labels = [
    "T-*",
]

[autolabel."A-rustdoc-json"]
trigger_files = [
    "src/librustdoc/json/",
    "src/rustdoc-json-types",
    "tests/rustdoc-json",
    "src/tools/jsondocck",
    "src/tools/jsondoclint",
]

[autolabel."T-compiler"]
trigger_files = [
    # Source code
    "compiler",

    # Tests
    "tests/ui",
]
exclude_labels = [
    "T-*",
]

[autolabel."T-libs"]
trigger_files = [
    "library/alloc",
    "library/core",
    "library/panic_abort",
    "library/panic_unwind",
    "library/std",
    "library/stdarch",
    "library/term",
    "library/test",
]
exclude_labels = [
    "T-*",
]

[autolabel."T-bootstrap"]
trigger_files = [
    "x.py",
    "x",
    "x.ps1",
    "src/bootstrap",
    "src/tools/rust-installer",
    "src/tools/x",
    "configure",
    "Cargo.toml",
    "config.example.toml",
    "src/stage0.json",
    "src/tools/compiletest",
    "src/tools/tidy",
    "src/tools/rustdoc-gui-test",
]

[autolabel."T-infra"]
trigger_files = [
    "src/ci",
    "src/tools/bump-stage0",
    "src/tools/cargotest",
    "src/tools/tier-check",
]

[autolabel."T-style"]
trigger_files = [
    "src/doc/style-guide",
]

[autolabel."A-translation"]
trigger_files = [
    "compiler/rustc_error_messages",
    "compiler/rustc_errors/src/translation.rs",
    "compiler/rustc_macros/src/diagnostics"
]

[autolabel."A-query-system"]
trigger_files = [
    "compiler/rustc_query_system",
    "compiler/rustc_query_impl",
    "compiler/rustc_macros/src/query.rs"
]

[autolabel."A-testsuite"]
trigger_files = [
    "src/ci",
    "src/tools/compiletest",
    "src/tools/cargotest",
    "src/tools/tidy",
    "src/tools/remote-test-server",
    "src/tools/remote-test-client",
    "src/tools/tier-check"
]

[autolabel."A-meta"]
trigger_files = [
    "triagebot.toml",
    "rustfmt.toml",
    "LICENSES",
    "README.md",
    "CONTRIBUTING.md",
    ".reuse",
    ".mailmap",
    ".git-blame-ignore-revs",
    ".editorconfig"
]

[autolabel."T-release"]
trigger_files = [
    "RELEASES.md",
    "src/stage0.json",
    "src/version"
]

[autolabel."S-waiting-on-review"]
new_pr = true

[autolabel."WG-trait-system-refactor"]
trigger_files = [
    "compiler/rustc_trait_selection/src/solve",
    "compiler/rustc_middle/src/traits/solve.rs"
]

[notify-zulip."I-prioritize"]
zulip_stream = 245100 # #t-compiler/wg-prioritization/alerts
topic = "#{number} {title}"
message_on_add = """\
@*WG-prioritization/alerts* issue #{number} has been requested for prioritization.

# [Procedure](https://forge.rust-lang.org/compiler/prioritization/procedure.html#assign-priority-to-unprioritized-issues-with-i-prioritize-label)
- Priority?
- Regression?
- Notify people/groups?
- Needs `I-nominated`?
"""
message_on_remove = "Issue #{number}'s prioritization request has been removed."
message_on_close = "Issue #{number} has been closed while requested for prioritization."
message_on_reopen = "Issue #{number} has been reopened."

[notify-zulip."T-rustdoc"]
required_labels = ["I-nominated"]
zulip_stream = 266220 # #rustdoc
topic = "nominated: #{number}"
message_on_add = """\
@*T-rustdoc* issue #{number} "{title}" has been nominated for `T-rustdoc` discussion.
"""
message_on_remove = "Issue #{number}'s nomination request has been removed."

[notify-zulip."I-types-nominated"]
zulip_stream = 326866 # #T-types/nominated
topic = "#{number}: {title}"
message_on_add = """\
@*T-types* issue #{number} "{title}" has been nominated for team discussion.
"""
message_on_remove = "Issue #{number}'s nomination has been removed. Thanks all for participating!"
message_on_close = "Issue #{number} has been closed. Thanks for participating!"
message_on_reopen = "Issue #{number} has been reopened. Pinging @*T-types*."

[notify-zulip."A-edition-2021"]
required_labels = ["C-bug"]
zulip_stream = 268952 # #edition 2021
topic = "Edition Bugs"
message_on_add = """\
Issue #{number} "{title}" has been added.
"""

[github-releases]
format = "rustc"
project-name = "Rust"
changelog-path = "RELEASES.md"
changelog-branch = "master"

[shortcut]


[mentions."compiler/rustc_apfloat"]
message = """
Changes rustc_apfloat. rustc_apfloat is currently in limbo and you almost \
certainly don't want to change it (see #55993).
"""
cc = ["@eddyb"]

[mentions."compiler/rustc_codegen_cranelift"]
cc = ["@bjorn3"]

[mentions."compiler/rustc_codegen_gcc"]
cc = ["@antoyo"]

[mentions."compiler/rustc_const_eval/src/interpret"]
message = "Some changes occurred to the CTFE / Miri engine"
cc = ["@rust-lang/miri"]

[mentions."compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs"]
message = "Some changes occurred in need_type_info.rs"
cc = ["@lcnr"]

[mentions."compiler/rustc_middle/src/mir/interpret"]
message = "Some changes occurred to the CTFE / Miri engine"
cc = ["@rust-lang/miri"]

[mentions."compiler/rustc_mir_transform/src/"]
message = "Some changes occurred to MIR optimizations"
cc = ["@rust-lang/wg-mir-opt"]

[mentions."compiler/rustc_trait_selection/src/traits/const_evaluatable.rs"]
message = "Some changes occurred in `const_evaluatable.rs`"
cc = ["@BoxyUwU"]

[mentions."compiler/rustc_middle/src/ty/abstract_const.rs"]
message = "Some changes occurred in `abstract_const.rs`"
cc = ["@BoxyUwU"]

[mentions."compiler/rustc_ty_utils/src/consts.rs"]
message = "Some changes occurred in `rustc_ty_utils::consts.rs`"
cc = ["@BoxyUwU"]

[mentions."compiler/rustc_trait_selection/src/solve/"]
message = "Some changes occurred to the core trait solver"
cc = ["@rust-lang/initiative-trait-system-refactor"]

[mentions."compiler/rustc_trait_selection/src/traits/engine.rs"]
message = """
Some changes occurred in engine.rs, potentially modifying the public API \
of `ObligationCtxt`.
"""
cc = ["@lcnr", "@compiler-errors"]

[mentions."compiler/rustc_error_codes/src/error_codes.rs"]
message = "Some changes occurred in diagnostic error codes"
cc = ["@GuillaumeGomez"]

[mentions."compiler/rustc_mir_build/src/thir/pattern"]
message = "Some changes might have occurred in exhaustiveness checking"
cc = ["@Nadrieril"]

[mentions."src/librustdoc/clean/types.rs"]
cc = ["@camelid"]

[mentions."src/librustdoc/html/static"]
message = "Some changes occurred in HTML/CSS/JS."
cc = [
    "@GuillaumeGomez",
    "@Folyd",
    "@jsha",
]

[mentions."src/librustdoc/html/static/css/themes"]
message = "Some changes occurred in HTML/CSS themes."
cc = ["@GuillaumeGomez"]

[mentions."src/librustdoc/html/static/css/themes/ayu.css"]
message = "A change occurred in the Ayu theme."
cc = ["@Cldfire"]

[mentions."src/rustdoc-json-types"]
message = """
rustdoc-json-types is a **public** (although nightly-only) API. \
If possible, consider changing `src/librustdoc/json/conversions.rs`; \
otherwise, make sure you bump the `FORMAT_VERSION` constant.
"""
cc = [
    "@CraftSpider",
    "@aDotInTheVoid",
    "@Enselic",
    "@obi1kenobi",
]

[mentions."src/tools/cargo"]
cc = ["@ehuss"]

[mentions."src/tools/clippy"]
cc = ["@rust-lang/clippy"]

[mentions."src/tools/miri"]
message = "The Miri subtree was changed"
cc = ["@rust-lang/miri"]

[mentions."src/tools/rust-analyzer"]
cc = ["@rust-lang/rust-analyzer"]

[mentions."src/tools/rustfmt"]
cc = ["@rust-lang/rustfmt"]

[mentions."compiler/rustc_middle/src/mir/syntax.rs"]
message = "This PR changes MIR"
cc = ["@oli-obk", "@RalfJung", "@JakobDegen", "@davidtwco", "@celinval", "@vakaras"]

[mentions."compiler/rustc_error_messages"]
message = "`rustc_error_messages` was changed"
cc = ["@davidtwco", "@compiler-errors", "@JohnTitor", "@TaKO8Ki"]

[mentions."compiler/rustc_errors/src/translation.rs"]
message = "`rustc_errors::translation` was changed"
cc = ["@davidtwco", "@compiler-errors", "@JohnTitor", "@TaKO8Ki"]

[mentions."compiler/rustc_macros/src/diagnostics"]
message = "`rustc_macros::diagnostics` was changed"
cc = ["@davidtwco", "@compiler-errors", "@JohnTitor", "@TaKO8Ki"]

[mentions."compiler/rustc_smir"]
message = "This PR changes Stable MIR"
cc = ["@oli-obk", "@celinval"]

[mentions."compiler/rustc_target/src/spec"]
message = """
These commits modify **compiler targets**.
(See the [Target Tier Policy](https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html).)
"""

[mentions."src/doc/style-guide"]
cc = ["@rust-lang/style"]

[mentions."Cargo.lock"]
message = """
These commits modify the `Cargo.lock` file. Unintentional changes to `Cargo.lock` can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.
"""

[mentions."src/tools/x"]
message = "`src/tools/x` was changed. Bump version of Cargo.toml in `src/tools/x` so tidy will suggest installing the new version."

[mentions."src/bootstrap/defaults/config.compiler.toml"]
message = "This PR changes src/bootstrap/defaults/config.compiler.toml. If appropriate, please also update `config.codegen.toml` so the defaults are in sync."
[mentions."src/bootstrap/defaults/config.codegen.toml"]
message = "This PR changes src/bootstrap/defaults/config.codegen.toml. If appropriate, please also update `config.compiler.toml` so the defaults are in sync."

[mentions."tests/ui/deriving/deriving-all-codegen.stdout"]
message = "Changes to the code generated for builtin derived traits."
cc = ["@nnethercote"]

[mentions."tests/ui/stats/hir-stats.stderr"]
message = "Changes to the size of AST and/or HIR nodes."
cc = ["@nnethercote"]

[assign]
warn_non_default_branch = true
contributing_url = "https://rustc-dev-guide.rust-lang.org/getting-started.html"

[assign.adhoc_groups]
compiler-team = [
    "@cjgillot",
    "@petrochenkov",
    "@davidtwco",
    "@oli-obk",
    "@wesleywiser",
]
compiler-team-contributors = [
    "@compiler-errors",
    "@eholk",
    "@jackh726",
    "@TaKO8Ki",
    "@WaffleLapkin",
    "@b-naber",
]
compiler = [
    "compiler-team",
    "compiler-team-contributors",
]
libs = [
    "@cuviper",
    "@joshtriplett",
    "@Mark-Simulacrum",
    "@m-ou-se",
    "@thomcc",
]
bootstrap = [
    "@Mark-Simulacrum",
    "@albertlarsan68",
    "@ozkanonur",
    "@clubby789",
]
infra-ci = [
    "@Mark-Simulacrum",
    "@pietroalbini",
]
rustdoc = [
    "@jsha",
    "@GuillaumeGomez",
    "@notriddle",
]
docs = [
    "@ehuss",
    "@GuillaumeGomez",
    "@JohnTitor",
]
query-system = [
    "@cjgillot",
]
incremental = [
    "@michaelwoerister",
    "@wesleywiser",
]
diagnostics = [
    "@compiler-errors",
    "@davidtwco",
    "@oli-obk",
    "@TaKO8Ki",
]
parser = [
    "@compiler-errors",
    "@davidtwco",
    "@nnethercote",
    "@petrochenkov",
]
lexer = [
    "@nnethercote",
    "@petrochenkov",
]
mir = [
    "@davidtwco",
    "@oli-obk",
]
mir-opt = [
    "@oli-obk",
    "@wesleywiser",
]
types = [
    "@compiler-errors",
    "@jackh726",
    "@lcnr",
    "@oli-obk",
    "@spastorino",
]
borrowck = [
    "@davidtwco",
    "@pnkfelix",
]
ast_lowering = [
    "@compiler-errors",
    "@spastorino",
]
fallback = [
    "@Mark-Simulacrum"
]
style-team = [
    "@calebcartwright",
    "@compiler-errors",
    "@joshtriplett",
    "@yaahc",
]

[assign.owners]
"/.github/workflows" =                       ["infra-ci"]
"/Cargo.lock" =                              ["@Mark-Simulacrum"]
"/Cargo.toml" =                              ["@Mark-Simulacrum"]
"/compiler" =                                ["compiler"]
"/compiler/rustc_apfloat" =                  ["@eddyb"]
"/compiler/rustc_ast" =                      ["compiler", "parser"]
"/compiler/rustc_ast_lowering" =             ["compiler", "ast_lowering"]
"/compiler/rustc_hir_analysis" =             ["compiler", "types"]
"/compiler/rustc_lexer" =                    ["compiler", "lexer"]
"/compiler/rustc_llvm" =                     ["@cuviper"]
"/compiler/rustc_middle/src/mir" =           ["compiler", "mir"]
"/compiler/rustc_middle/src/traits" =        ["compiler", "types"]
"/compiler/rustc_middle/src/ty" =            ["compiler", "types"]
"/compiler/rustc_const_eval/src/interpret" = ["compiler", "mir"]
"/compiler/rustc_const_eval/src/transform" = ["compiler", "mir-opt"]
"/compiler/rustc_mir_build/src/build" =      ["compiler", "mir"]
"/compiler/rustc_parse" =                    ["compiler", "parser"]
"/compiler/rustc_parse/src/lexer" =          ["compiler", "lexer"]
"/compiler/rustc_query_impl" =               ["compiler", "query-system"]
"/compiler/rustc_query_system" =             ["compiler", "query-system"]
"/compiler/rustc_trait_selection" =          ["compiler", "types"]
"/compiler/rustc_traits" =                   ["compiler", "types"]
"/compiler/rustc_type_ir" =                  ["compiler", "types"]
"/library/alloc" =                           ["libs"]
"/library/core" =                            ["libs", "@scottmcm"]
"/library/panic_abort" =                     ["libs"]
"/library/panic_unwind" =                    ["libs"]
"/library/proc_macro" =                      ["@petrochenkov"]
"/library/std" =                             ["libs"]
"/library/std/src/sys/windows" =             ["@ChrisDenton", "@thomcc"]
"/library/stdarch" =                         ["libs"]
"/library/test" =                            ["libs"]
"/src/bootstrap" =                           ["bootstrap"]
"/src/ci" =                                  ["infra-ci"]
"/src/doc" =                                 ["docs"]
"/src/doc/book" =                            ["@ehuss"]
"/src/doc/edition-guide" =                   ["@ehuss"]
"/src/doc/embedded-book" =                   ["@ehuss"]
"/src/doc/nomicon" =                         ["@ehuss"]
"/src/doc/reference" =                       ["@ehuss"]
"/src/doc/rust-by-example" =                 ["@ehuss"]
"/src/doc/rustc-dev-guide" =                 ["@ehuss"]
"/src/doc/rustdoc" =                         ["rustdoc"]
"/src/doc/style-guide" =                     ["style-team"]
"/src/etc" =                                 ["@Mark-Simulacrum"]
"/src/librustdoc" =                          ["rustdoc"]
"/src/llvm-project" =                        ["@cuviper"]
"/src/rustdoc-json-types" =                  ["rustdoc"]
"/src/stage0.json" =                         ["bootstrap"]
"/tests/ui" =                                ["compiler"]
"/src/tools/cargo" =                         ["@ehuss", "@joshtriplett"]
"/src/tools/compiletest" =                   ["bootstrap", "@wesleywiser", "@oli-obk", "@compiler-errors"]
"/src/tools/linkchecker" =                   ["@ehuss"]
"/src/tools/rust-installer" =                ["bootstrap"]
"/src/tools/rustbook" =                      ["@ehuss"]
"/src/tools/rustdoc" =                       ["rustdoc"]
"/src/tools/rustdoc-js" =                    ["rustdoc"]
"/src/tools/rustdoc-themes" =                ["rustdoc"]
"/src/tools/tidy" =                          ["bootstrap"]
"/src/tools/x" =                             ["bootstrap"]
"/src/tools/rustdoc-gui-test" =              ["bootstrap", "@ozkanonur"]
